home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #334 (1994-06)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #334 (1994-06)(Rhein-Sieg-Soft).adf
/
tracker.library
/
Demos
/
Dos-Info.asm
< prev
next >
Wrap
Assembly Source File
|
1994-04-16
|
5KB
|
205 lines
;TestProgramm für "tracker.library"
; Testet TRK_InfoName
NOLIST
INCLUDE "exec/LVO.i"
INCLUDE "exec/memory.i"
INCLUDE "dos/LVO.i"
INCLUDE "dos/dos.i"
INCLUDE "dos/datetime.i"
INCLUDE "dos/dosextens.i"
INCLUDE "libraries/tracker.i"
LIST
Print: MACRO
move.l Output,d1
move.l #\1,d2
CALLDOS VFPrintf
ENDM
_TrackerBase: EQUR a5
_DOSBase: EQUR a4
Output: EQUR d7
; WB-Message ?
sub.l a1,a1 ;a1=0->eigener Task
CALLEXEC FindTask ;Wo darf man denn nachschauen ?
move.l d0,a0
tst.l pr_CLI(a0) ;von CLI oder WB aus gestartet ?
bne fromCLI
;von WB aus:
lea pr_MsgPort(a0),a0
move.l a0,-(sp)
CALLEXEC WaitPort ;auf Start-Message warten
move.l (sp)+,a0
CALLEXEC GetMsg ;muß nachher beantwortet werden
move.l d0,WBenchMsg
fromCLI:
; Tracker-Library öffnen
OPENLIB TrName,3
tst.l d0
beq ende_all
move.l d0,_TrackerBase
TRK_OPENSTDLIB DOS,36
tst.l d0
beq ende_trk
move.l d0,_DOSBase
tst.l WBenchMsg
bne fromWB
;von CLI aus -> Ausgaben ins CLI-Fenster
CALLDOS Output
move.l d0,Output
bra main
;von WB aus gestartet -> eigenes Window nötig
fromWB: move.l #WdName,d1
move.l #MODE_OLDFILE,d2
CALLTRK TRK_Open
move.l d0,Output
;---------------------------------------------------------------------------
;Haupt-Testteil
INFO: MACRO
move.l #\1,d1
bsr Info
ENDM
main: INFO Name_1
INFO Name_2
move.l d0,d6
INFO Name_3
move.l d0,d5
move.l d6,d1
beq 1$
bsr Free
1$: INFO Name_4
move.l d5,d1
beq 2$
bsr Free
2$: INFO Name_5
;---------------------------------------------------------------------------
ende_main:
;ggf. End-Botschaft und Verzögerung
tst.l WBenchMsg
beq ende_trk
move.l Output,d1
move.l #GoodBye,d2
moveq #GoodByeLen,d3
CALLDOS Write
move.l #150,d1
CALL Delay
;Library schließen
ende_trk:
CLOSELIB _TrackerBase
ende_all:
tst.l WBenchMsg ;war da was ?
beq toCLI ;na dann halt nicht
;Message zur WB zurück
move.l WBenchMsg,a1
CALLEXEC ReplyMsg
toCLI: moveq #0,d0
rts
;---------------------------------------------------------------------------
; Unterprogramm: Namen untersuchen lassen
; Parameter: d1 = Adresse des Filenamens
; Ergebnis: die Info-Data-Struktur
Info: move.l sp,a3
move.l d1,-(sp)
CALLTRK TRK_InfoName
tst.l d0
bne 1$
move.l sp,d3
Print not_existant
move.l a3,sp
moveq #0,d0
rts
1$: move.l (sp),d1
move.l d0,(sp)
;den ganzen Krimskrams ausgeben:
move.l d0,a0
move.l id_InUse(a0),-(sp) ;10. Parameter
move.l id_VolumeNode(a0),-(sp) ;9. Parameter
lea DType,a1
move.l id_DiskType(a0),(a1)
move.l a1,-(sp) ;8. Parameter
move.l id_BytesPerBlock(a0),-(sp) ;7. Parameter
move.l id_NumBlocksUsed(a0),-(sp) ;6. Parameter
move.l id_NumBlocks(a0),-(sp) ;5. Parameter
move.l id_DiskState(a0),d0
cmp.l #ID_NO_DISK_PRESENT,d0
bne 4$
pea DS_NO_DISK_PRESENT ;4. Parameter
bra 5$
4$: cmp.l #ID_WRITE_PROTECTED,d0
bne 6$
pea DS_WRITE_PROTECTED ;4. Parameter
bra 5$
6$: cmp.l #ID_VALIDATING,d0
bne 7$
pea DS_VALIDATING ;4. Parameter
bra 5$
7$: cmp.l #ID_VALIDATED,d0
bne 8$
pea DS_VALIDATED ;4. Parameter
bra 5$
8$: pea unknown ;4. Parameter
5$: move.l id_UnitNumber(a0),-(sp) ;3. Parameter
move.l id_NumSoftErrors(a0),-(sp) ;2. Parameter
move.l d1,-(sp) ;1. Parameter: Name
move.l sp,d3
Print existant
move.l -4(a3),d0
move.l a3,sp
rts
;---------------------------------------------------------------------------
;Unterroutine: TRK_FreeFIB testen
;Parameter: d1 = Adresse des Speicherbereichs
;Ergebnis: -
Free: movem.l d1-d3,-(sp) ;Register sichern
move.l d1,a1
CALLTRK TRK_FreeMem
move.l sp,d3
movem.l (sp)+,d1-d3 ;Register zurück
rts
;---------------------------------------------------------------------------
WBenchMsg: dc.l 0
DType: dc.l 0,0
TrName: TRACKERNAME
WdName: dc.b "CON:0/0/640/200/Info-Test für tracker.library",0
GoodBye: dc.b 10,"Bye - closing soon !",0
GoodByeLen: equ *-GoodBye
Name_1: dc.b "SYS:",0
Name_2: dc.b "S:Startup-Sequence",0
Name_3: dc.b "DF1:",0
Name_4: dc.b "ENV:",0
Name_5: dc.b "RAM:",0
not_existant: dc.b "Datei/Pfad %s kann nicht untersucht werden !"
CrLf: dc.b 10,0
FreeText: dc.b "InfoData at $%06lx freed",10,0
existant: dc.b "Datei/Pfad %s untersucht",10
dc.b "NumSoftErrors = %ld",10
dc.b "UnitNumber = %ld",10
dc.b "DiskState = %s",10
dc.b "NumBlocks = %ld",10
dc.b "NumBlocksUsed = %ld",10
dc.b "BytesPerBlock = %ld",10
dc.b "DiskType = %s",10
dc.b "VolumeNode = $%06lx",10
dc.b "InUse = %ld",10,0
DS_WRITE_PROTECTED: dc.b "write protected",0
DS_VALIDATING: dc.b "validating",0
DS_VALIDATED: dc.b "validated",0
DS_NO_DISK_PRESENT: dc.b "no_disk_present",0
unknown: dc.b "unknown",0
END